home *** CD-ROM | disk | FTP | other *** search
/ Atari Forever 4 / Atari Forever 4.zip / Atari Forever 4.iso / SERIE_S / S_913 / STIKCOVL / DRIVERS.H < prev    next >
C/C++ Source or Header  |  1998-03-14  |  2KB  |  67 lines

  1. /*      drivers.h        (c) Steve Adam 1995   steve@netinfo.com.au
  2.  *
  3.  *      Data types etc. for access to STiK TCP/IP drivers.
  4.  */
  5.  
  6. #ifndef STIK_DRIVERS_H
  7. #define STIK_DRIVERS_H
  8.  
  9. /*  Data types used throughout STiK  */
  10.  
  11. typedef int int16;
  12. typedef unsigned int uint16;
  13. typedef long int32;
  14. typedef unsigned long uint32;
  15.  
  16. #ifndef TRUE
  17. #define TRUE    1
  18. #endif
  19. #ifndef FALSE
  20. #define FALSE   0
  21. #endif
  22.  
  23. /* STIK global configuration structure */
  24. typedef struct config {
  25.     uint32  client_ip;          /*  IP address of client (local) machine    */
  26.     uint32  provider;           /*  IP address of provider, or 0L           */
  27.     uint16  ttl;                /*  Default TTL for normal packets          */
  28.     uint16  ping_ttl;           /*  Default TTL for `ping'ing               */
  29.     uint16  mtu;                /*  Default MTU (Maximum Transmission Unit) */
  30.     uint16  mss;                /*  Default MSS (Maximum Segment Size)      */
  31.     uint16  in_packet_size;     /*  Max size of new inbound packets         */
  32.     uint16  df_bufsize;         /*  Size of defragmentation buffer to use   */
  33.     uint16  rcv_window;         /*  TCP receive window                      */
  34.     uint16  def_rtt;            /*  Initial RTT time in ms                  */
  35.     int16   time_wait_time;     /*  How long to wait in `TIME_WAIT' state   */
  36.     int16   unreach_resp;       /*  Response to unreachable local ports     */
  37.     int32   cn_time;            /*  Time connection was made                */
  38.     int16   cd_valid;           /*  Is Modem CD a valid signal??            */
  39. } CONFIG;
  40.  
  41.  
  42. /* Driver access structure/functions    */
  43. #define MAGIC   "STiKmagic"
  44. #define CJTAG   "STiK"
  45.  
  46. typedef struct drv_header {     /* ptr to header part of driver struct  */
  47.     char *module;
  48.     char *author;
  49.     char *version;
  50. } DRV_HDR;
  51.  
  52. typedef struct drv_list {
  53.     char magic[10];                         /* Magic number.  To be decided */
  54.     DRV_HDR * cdecl (*get_dftab)(char *);   /* Get Driver Function Table fn */
  55.     int16     cdecl (*ETM_exec)(char *);    /* Execute a STiK module        */
  56.     CONFIG    *cfg;
  57. } DRV_LIST;
  58.  
  59. extern DRV_LIST *drivers;
  60.  
  61. #define get_dftab(x)    (*drivers->get_dftab)(x)
  62. #define ETM_exec(x)     (*drivers->ETM_exec)(x)
  63. #define stik_cfg        (drivers->cfg)
  64.  
  65.  
  66. #endif   /* STIK_DRIVERS_H */
  67.